/**
 * 根据用户权限过滤路由配置
 * @param {Array} routes - 路由配置数组
 * @param {Array} userPermissions - 用户拥有的权限列表
 * @returns {Array} 过滤后的路由配置
 */
export default function filterRoutesByPermission(routes, userPermissions) {
  // 深度遍历路由配置
  return routes.filter(route => {
    // 递归处理子路由
    if (route.children) {
      route.children = filterRoutesByPermission(route.children, userPermissions)
    }

    // 检查路由权限配置
    const routePermissions = route.meta?.permission

    // 情况1：路由不需要任何权限
    if (!routePermissions) return true

    // 情况2：路由需要权限但用户没有权限
    if (!Array.isArray(routePermissions)) return false

    // 情况3：路由需要权限且用户有相应权限
    return routePermissions.some(permission => userPermissions.includes(permission))
  })
}
